SQL UNION ALL Operator क्या हैं?
UNION ALL ऑपरेटर का उपयोग दो या दो से अधिक SELECT स्टेटमेंट के परिणाम-सेट को संयोजित करने के लिए किया जाता है।
UNION ALL ऑपरेटर में डुप्लिकेट सहित प्रत्येक कथन की सभी पंक्तियाँ शामिल हैं।
यूनियन ऑल के लिए आवश्यकताएँ:
- UNION ALL में प्रत्येक SELECT स्टेटमेंट में कॉलम की संख्या समान होनी चाहिए
- कॉलम में भी समान डेटा प्रकार होने चाहिए
- प्रत्येक SELECT स्टेटमेंट में कॉलम एक ही क्रम में होने चाहिए
यूनियन सभी वाक्यविन्यास
SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;
नोट:
UNION ऑपरेटर डिफ़ॉल्ट रूप से डुप्लिकेट मान हटा देता है, लेकिन UNION ALL में डुप्लिकेट मान शामिल होते हैं।
प्रदर्शन डेटाबेस
इस अभ्यास में हम प्रसिद्ध नॉर्थविंड मॉडल डेटाबेस का उपयोग करेंगे।
नीचे "ग्राहक" तालिका से एक चयन दिया गया है:
ग्राहक तालिका
+------------+--------------------------------+----------------+-------------------+----------+------------+---------+
| CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
+------------+--------------------------------+----------------+-------------------+----------+------------+---------+
| 1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
| 2 | Ana Trujillo Emparedados... | Ana Trujillo | Avda. Constitución| México | 05021 | Mexico |
| 3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México | 05023 | Mexico |
+------------+--------------------------------+----------------+-------------------+----------+------------+---------+
और "आपूर्तिकर्ता" तालिका से एक चयन:
आपूर्तिकर्ता तालिका
+------------+-----------------------------+-------------------+-----------------+-------------+------------+---------+
| SupplierID | SupplierName | ContactName | Address | City | PostalCode | Country |
+------------+-----------------------------+-------------------+-----------------+-------------+------------+---------+
| 1 | Exotic Liquid | Charlotte Cooper | 49 Gilbert St. | London | EC1 4SD | UK |
| 2 | New Orleans Cajun Delights | Shelley Burke | P.O. Box 78934 | New Orleans | 70117 | USA |
| 3 | Grandma Kelly's Homestead | Regina Murphy | 707 Oxford Rd. | Ann Arbor | 48104 | USA |
+------------+-----------------------------+-------------------+-----------------+-------------+------------+---------+
SQL UNION ALL उदाहरण
निम्नलिखित SQL कथन "ग्राहक" और "आपूर्तिकर्ता" तालिकाओं से शहर (डुप्लिकेट मान सहित) लौटाता है:
उदाहरण
SELECT City FROM Customers
UNION ALL
SELECT City FROM Suppliers
ORDER BY City;
निष्कर्ष
एसक्यूएल यूनियन सभी कहां से
निम्नलिखित SQL कथन "ग्राहक" और "आपूर्तिकर्ता" तालिकाओं से जर्मन शहरों (डुप्लिकेट मानों सहित) को लौटाता है:
उदाहरण
SELECT City, Country FROM Customers
WHERE Country='Germany'
UNION ALL
SELECT City, Country FROM Suppliers
WHERE Country='Germany'
ORDER BY City;
यूनियन बनाम यूनियन सभी दृश्य प्रतिनिधित्व
ग्राहकों के शहर
आपूर्तिकर्ताओं के शहर
यूनियन परिणाम
डुप्लिकेट हटा दिए गए
यूनियन सभी परिणाम
सभी डुप्लिकेट जोड़े गए
टिप्पणी:UNION स्वचालित रूप से डुप्लिकेट मानों को हटा देता है, लेकिन UNION ALL सभी डुप्लिकेट मानों को सुरक्षित रखता है।
यूनियन बनाम यूनियन सभी तुलना
UNION
- डुप्लिकेट पंक्तियाँस्वचालित रूप से हटा देता है
- केवल अद्वितीय मान लौटाता है
- धीरे-धीरे कार्य कर सकते हैं (अद्वितीयता की जाँच करना)
- डेटा अखंडता के लिए उपयुक्त
- कम पंक्तियाँ लौटाता है
SELECT City FROM Table1
UNION
SELECT City FROM Table2;
UNION ALL
- डुप्लिकेट पंक्तियाँसुरक्षा करता है
- सभी मान लौटाता है
- तेज़ (विशिष्टता की जाँच नहीं की गई है)
- संपूर्ण डेटा के लिए उपयुक्त
- अधिक पंक्तियाँ लौटाता है
SELECT City FROM Table1
UNION ALL
SELECT City FROM Table2;
प्रदर्शन नोट:
उन स्थितियों में यूनियन ऑल का उपयोग करें जहां डुप्लिकेट की आवश्यकता नहीं है, क्योंकि यह तेज़ है क्योंकि यह विशिष्टता की जांच नहीं करता है।
प्रदर्शन प्रतिक्रिया
यूनियन ऑल तेज है
विशिष्टता की जाँच करने की कोई आवश्यकता नहीं है
-- तेज तालिका 1 से * चुनें संघ सब तालिका2 से चुनें *;
यूनियन धीमा है
विशिष्टता की जाँच करें
-- धीमा तालिका 1 से * चुनें संघ तालिका2 से चुनें *;
बड़े डेटाबेस
बड़ी तालिकाओं के लिए UNION ALL का उपयोग करें
-- बड़े डेटा के लिए उपयुक्त लार्जटेबल1 से ग्राहक आईडी चुनें संघ सब लार्जटेबल2 से ग्राहक आईडी चुनें;
मामलों का प्रयोग करें
संपूर्ण आँकड़े
सभी मामलों को शामिल करते हुए सांख्यिकीय विश्लेषण के लिए
SELECT 'Customer' AS Type, City
FROM Customers
UNION ALL
SELECT 'Supplier', City
FROM Suppliers;
लॉग गणना
संपूर्ण रिकार्ड गिनती के लिए
SELECT COUNT(*) AS TotalCount
FROM (
SELECT * FROM Table1
UNION ALL
SELECT * FROM Table2
) AS CombinedTable;
डेटा संबंध
अनेक स्रोतों से डेटा एकीकृत करें
SELECT ProductName FROM CurrentProducts
UNION ALL
SELECT ProductName FROM ArchivedProducts;